package com.begin.core.context;

import java.io.File;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

/**
 * 服务上下文信息
 * @author chenyang
 *
 */
public class SystemInfo extends HttpServlet {

	/** web容器的上下文路径,不以'/'结尾。 */
	private static String contextPath;

	/** web容器的上下文路径,不以'/'结尾。 */
	private static String physicalPath;

	@Override
	public void init() throws ServletException {
		
		super.init();
		initPathInfo();
	}

	/**
	 * 获得路径信息，作为静态变量在整个系统中使用。
	 */
	private void initPathInfo() {
		ServletContext context = this.getServletContext();
		// 将相对路径赋值给系统信息
		String contextPath = context.getContextPath();
		// 容器对getContextPath的返回值不同，如果webRoot的最后一位是'/',那么删除这个'/'.
		int iLastSlash = contextPath.lastIndexOf('/');
		if (iLastSlash != -1 && iLastSlash == contextPath.length() - 1) {
			contextPath = contextPath.substring(0, iLastSlash);
		}
		SystemInfo.contextPath = contextPath;
		// 将物理路径赋值给系统信息
		String physicalPath = context.getRealPath(File.separator);
		SystemInfo.physicalPath = physicalPath;

	}

	public static String getContextPath() {
		return contextPath;
	}

	public static String getPhysicalPath() {
		return physicalPath;
	}

}
